package com.it.a12test6;

import java.io.*;
import java.net.Socket;

public class Client {
    public static void main(String[] args) throws IOException {
        //客户端：将本地文件上传到服务器。接收服务器的反馈。
        //服务器：接收客户端上传的文件，上传完毕之后给出反馈。
        /*
        想要服务器不停止，能接收很多用户上传的图片。
        该怎么做呢？
        提示：可以用循环或者多线程。
        但是循环不合理，最优解法是（循环+多线程）改写
        如果只是用循环包裹，遇到文件较大的情况下，传输的速度就会很慢，因为还是单线程。
         */

        //创建Socket
        Socket socket = new Socket("127.0.0.1", 8888);

        //读取本地文件中的数据，并写到文件中
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\java\\basic-code\\mysockstnet\\clientdir\\7F38462615A64DCB78A424AA4A3190F19108CEAF_size2083_w1181_h768.jpeg"));
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        byte[] buf = new byte[1024];
        int len;
        while((len = bis.read(buf)) != -1) {
            bos.write(buf, 0, len);
        }
        //结束读写标志
        socket.shutdownOutput();
        //接收服务器的回写
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line = br.readLine();
        System.out.println(line);
        //释放资源
        socket.close();

    }
}
